package com.baoyouqun.base.utils.EnumValidator;

import java.lang.reflect.Method;

public class GenericEnumValidator {

    /**
     * 通用校验：入参 value 是否为目标枚举的有效值
     *
     * @param enumClass 枚举类（必须含 `valueOfDbValue(String)` 方法）
     * @param value     待校验的值
     */
    public static boolean isValidEnum(
            Class<? extends Enum<?>> enumClass,
            String value
    ) {
        if (value == null || enumClass == null) return false;
        try {
            // 调用枚举的 valueOfDbValue 方法
            Method method = enumClass.getMethod("valueOfDbValue", String.class);
            method.invoke(null, value); // 无效值会抛异常
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}